#include<func.h>
#include<dirent.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<stdio.h>
// tree.c
void dfs_print(const char* path, int width); /* width: 缩进的空格数目
*/
int directories = 0, files = 0;
int main(int argc, char *argv[])
{
    ARGS_CHECK(argc, 2);
    puts(argv[1]);//打印目录的名字
    //判断是否是目录，如果是就打印
    //打开目录流
    DIR *pdir = opendir(argv[1]);
    ERROR_CHECK(pdir,NULL,"opendir");
    long loc = telldir(pdir); //读取当前目录位置
    //设置全局变量
    errno = 0;
    //设置一个结构体 取值NULL
    struct dirent*pdirent = NULL;
    //如果读取到文件类型为目录，记录当前目录，并递归每一个
    //读取下一个目录流
    while(1)
    {
        //记录当前目录流位置
        long tmploc = telldir(pdir);//记录的 .
        //查找目录
        pdirent = readdir(pdir);//读取下一个目录流
        if(pdirent == NULL)
        {
            break;//如果为空跳出目录
        }
        printf("%s ",pdirent->d_name);
        if(strcmp(pdirent->d_type,"DT_REG") == 0)
        {
            loc = tmploc;
        }

    }


    dfs_print(argv[1],4);//递归打印每一项
    printf("\n%d directories, %d files\n", directories, files);
    return 0;
}